package common

import (
	"Gin-Server-01/com/server/core/tools/jwtTool"
	"github.com/gin-gonic/gin"
	"log"
	"path/filepath"
	"strings"
	"time"
)

/**
 * @Author Administrator
 * @Description
 * @Date 2023/9/6 17:53
 * @Version 1.0
 */

// GetFileLastIndex
//
//	@Description:  获取文件最后一个索引
//	@Param: str 文件
//	@Param: lastSubStr 最后一个索引
//	@Return: fileName 返回数据
func GetFileLastIndex(str string, lastSubStr string) (fileName string) {

	// 使用 strings 包中的 LastIndex 函数获取最后一个 [] 的索引
	index := strings.LastIndex(str, lastSubStr)

	// 使用字符串切片操作获取最后一个斜杠后的数据
	return str[index+1:]

}

// GetFilePathStrSuffix
//
//	@Description:  获取文件的后缀
//	@Param filePathStr query string true "文件路径字符串"
//	@Return fileSuffix 返回文件的后缀,无点
func GetFilePathStrSuffix(filePathStr string) (fileSuffix string) {

	return strings.TrimPrefix(filepath.Ext(filePathStr), ".") //获取文件的后缀，去掉.
}

// RefreshLogin
//
//	@Description:  刷新登录信息
//	@Param: c
//	@Param: loginUser
//	@Param: liveTime
//	@Return: token
func RefreshLogin(c *gin.Context, loginUser LoginUser, liveTime time.Duration) (token string) {
	//生成token和cookie
	token, tokenErr := jwtTool.GenToken(jwtTool.TokenDatas{
		TokenData: loginUser,
	}, liveTime)

	if tokenErr != nil {
		log.Println(tokenErr.Error())
	}
	log.Println("登录成功生成token", token)
	GenToken(c, token, liveTime)
	return token
}

// LoginIsOK
//
//	@Description:  登录成功
//	@Param: c
//	@Param: loginUser
//	@Return: token
func LoginIsOK(c *gin.Context, loginUser LoginUser) (token string) {
	return RefreshLogin(c, loginUser, TokenAlive)
}
